<?php
 /**
 * Action d'inscription d'un client

 * [Mathieu FOURNIAL - Romain MIOR]
 */

require_once('libs/fonction.php');


// Formulaire check
$erreur_formulaire = 0;
$nom_champ_erreur = "";

if(isset($_POST['PASSWD']))
{
    $valeur = $_POST['PASSWD'];
    // Si le champ est valide
    if(!password($valeur))
    {
        $erreur_formulaire++;
        $nom_champ_erreur .= "Password";
    }
}
else
{
    $erreur_formulaire++;
    $nom_champ_erreur .= "Password";
}

if(isset($_POST['NOM']))
{
    $valeur = $_POST['NOM'];
    // Si le champ n'est pas valide
    if(!nom($valeur))
    {
        $erreur_formulaire++;
        $nom_champ_erreur .= " Nom";
    }
}
else
{
    $erreur_formulaire++;
    $nom_champ_erreur .= " Nom";
}

if(isset($_POST['PRENOM']))
{
    $valeur = $_POST['PRENOM'];
    // Si le champ n'est pas valide
    if(!prenom($valeur))
    {
        $erreur_formulaire++;
        $nom_champ_erreur .= " Prénom";
    }
}
else
{
    $erreur_formulaire++;
    $nom_champ_erreur .= " Prénom";
}

if(isset($_POST['EMAIL']))
{
    $valeur = $_POST['EMAIL'];
    // Si le champ n'est pas valide
    if(!email($valeur))
    {
        $erreur_formulaire++;
        $nom_champ_erreur .= " Email";
    }
}
else
{
	$erreur_formulaire++;
	$nom_champ_erreur .= " Email";
}

if(isset($_POST['CODEPOSTAL']))
{
    $valeur = $_POST['CODEPOSTAL'];
    // Si le champ n'est pas valide
    if(!code_postal($valeur))
    {
        $erreur_formulaire++;
        $nom_champ_erreur .= " Code postal";
    }
}
else
{
    $erreur_formulaire++;
    $nom_champ_erreur .= " Code postal";
}

if(isset($_POST['VILLE']))
{
    $valeur = $_POST['VILLE'];
    // Si le champ n'est pas valide
    if(!ville($valeur))
    {
        $erreur_formulaire++;
        $nom_champ_erreur .= " Ville";
    }
}
else
{
    $erreur_formulaire++;
    $nom_champ_erreur .= " Ville";
}

// Valeur pour la requete SQL
$champ = '';
$valeur = '';

$client = Array();
// Recupere tous les champs pour le template
foreach($_POST as $key => $val)
{
    // Si la clé n'est pas vide
    if($key != '')
    {
        $champ .= $key .', ';
        if(empty($val))
        {
            $valeur .= 'NULL, ';
        }
        else
        {
            $valeur .= '"'.$val .'", ';
        }

        // Remplace chaque caractère par une etoile
        if($key == "PASSWD")
        {
            $val = preg_replace('/./', '*', $val);
        }
        
        $client[$key] = $val;
    }
}

$smarty->assign('Client', $client);

// Retire la dernière virgule
if(strlen($champ) > 2)
{
    $champ = substr($champ, 0, strlen($champ)-2);
    $valeur = substr($valeur, 0, strlen($valeur)-2);
}

// Si une erreur existe dans le champ
if($erreur_formulaire > 0)
{
    $message_erreur = "Erreur lors de la saisi d'un champ du formulaire ! <br />";
    $message_erreur .= "Saisir correctement les champs suivant : $nom_champ_erreur";

    // Erreur
    $smarty->assign('erreur', $message_erreur);
    $smarty->display('formulaire-inscription.tpl');
}
else
{
    // Si la valeur des champs n'est pas vide
    if(!empty($champ) and !empty($valeur))
    {
        // Enregistre le compte dans la base de donnée
        $mdb2 = connexion();

        if(MDB2::isError($mdb2))
        {
            $message_erreur = "Erreur lors de la connexion à la base de données ! <br />";
            $message_erreur .= $mdb2->getDebugInfo() ."<br />";
            $message_erreur .= $mdb2->getMessage() ."<br />";

            // Erreur
            $smarty->assign('erreur', $message_erreur);
            $smarty->display('formulaire-inscription.tpl');
        }
        else
        {
            $sql = 'INSERT INTO CLIENT ('.$champ.') VALUES ('.$valeur.')';
            $res = $mdb2->query($sql);

            if(MDB2::isError($res))
            {
                $message_erreur = "Erreur lors de l'insertion dans la base client ! <br />";
                $message_erreur .= $res->getDebugInfo() ."<br />";
                $message_erreur .= $res->getMessage() ."<br />";

                // Erreur
                $smarty->assign('erreur', $message_erreur);
                $smarty->display('formulaire-inscription.tpl');
            }
            else
            {
                // Pas d'erreur
                $smarty->assign('erreur', '');
                $smarty->display('informations-client.tpl');
            }

            // Disconnect
            $mdb2->disconnect();
        }
    }
    else
    {
        $message_erreur = "Erreur : Aucune valeur à inserer dans la base client !";

        // Erreur
        $smarty->assign('erreur', $message_erreur);
        $smarty->display('formulaire-inscription.tpl');
    }
}
?>
